Miles Sound System SDK 7.2a

XMIDI Patch Bank Select (114)

Discussion

This controller may be used to "extend" the scope of MIDI Program Change (or Cakewalk "Patch") messages. Normally, any of 128 synthesizer patches may be selected with a Program Change message; however, the Patch Bank Select controller instructs the MSS XMIDI driver to associate custom timbres in any of 127 banks with synthesizer patches which are subsequently selected in a channel.

By convention, patch bank 0 is reserved for General MIDI built-in patch/timbre combinations, and for the Ad Lib-style instruments intended to emulate those patches. Custom timbres should generally be placed in patch banks 1 through 126. Timbre bank 127 is reserved for "drum kit" timbres to be used when playing note events on MIDI channel 10.

When a MIDI Program Change (or "patch") event is encountered, the XMIDI synthesizer driver looks in its collection of timbres from the Global Timbre Library or proprietary instrument bank for a custom timbre whose "patch number" is the specified Program Change number and whose "bank" is equal to the current Patch Bank Select controller value. If the timbre is found, the synthesizer is automatically instructed to associate the timbre with the patch which was just selected by the Program Change event. Under normal circumstances, the search for the requested timbre should not fail, since the driver should have been informed in advance of the need for the timbre via the AIL_init_sequence function.

The default Patch Bank Select controller value is 0. Therefore, MSS applications which do not require custom timbres may disregard this controller altogether. Otherwise, care must be taken to explicitly specify the Timbre Bank Select controller value to be used in each channel of every sequence and sound effect used by the application, since the default value of 0 is asserted only upon driver initialization - not when a channel is locked or when a sequence stops.

DLS patches are invoked in the normal way, with MIDI Program Change messages; however, it is recommended that the General MIDI bank-select controllers (0 and 32) be used instead of XMIDI Patch Bank Select (114) for all future work. In the MSS software DLS synthesizer, XMIDI Patch Bank Select emulates the GM bank controllers correctly, but this emulation is not supported by hardware-based synthesizer platforms.

Next Topic (XMIDI Indirect Controller Prefix (115))

Previous Topic (XMIDI Timbre Protect (113))


Group: Extended MIDI Technical Reference
Related Functions: AIL_init_sequence

For technical support, e-mail Miles3@radgametools.com
© Copyright 1991-2007 RAD Game Tools, Inc. All Rights Reserved.